package br.com.dinarth.model.dao;

import java.io.Serializable;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;

/**
 *Classe DAO genérica, será utilizada para efetuar as transações com o
 * banco de dados.
 * @author Dinarth
 */
public interface InterfaceDAO<T> {
    
    void save(T entity);
    void update (T entity);
    void remove(T entity);
    void merge(T entity);
    T getEntity(Serializable id);
    T getEntityByDetachedCriteria(DetachedCriteria criteria);
    List<T> getEntities();
    List<T> getListByDetachedCriteria(DetachedCriteria criteria);
    
    
}
